﻿using ycdlib;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace TestYCDlib
{
    /// <summary>
    ///ParserTest のテスト クラスです。すべての
    ///ParserTest 単体テストをここに含めます
    ///</summary>
	[TestClass()]
	public class ParserTest
	{


		private TestContext testContextInstance;

		/// <summary>
		///現在のテストの実行についての情報および機能を
		///提供するテスト コンテキストを取得または設定します。
		///</summary>
		public TestContext TestContext
		{
			get
			{
				return testContextInstance;
			}
			set
			{
				testContextInstance = value;
			}
		}

		#region 追加のテスト属性
		// 
		//テストを作成するときに、次の追加属性を使用することができます:
		//
		//クラスの最初のテストを実行する前にコードを実行するには、ClassInitialize を使用
		//[ClassInitialize()]
		//public static void MyClassInitialize(TestContext testContext)
		//{
		//}
		//
		//クラスのすべてのテストを実行した後にコードを実行するには、ClassCleanup を使用
		//[ClassCleanup()]
		//public static void MyClassCleanup()
		//{
		//}
		//
		//各テストを実行する前にコードを実行するには、TestInitialize を使用
		//[TestInitialize()]
		//public void MyTestInitialize()
		//{
		//}
		//
		//各テストを実行した後にコードを実行するには、TestCleanup を使用
		//[TestCleanup()]
		//public void MyTestCleanup()
		//{
		//}
		//
		#endregion


		/// <summary>
		///Parse のテスト
		///</summary>
		[TestMethod()]
		public void ParseTest ()
		{
			YCDocument doc = YCParser.ParseFile( "../../../test/000001.yd" );

			YCNode actual = doc.FindValue( "/あ" );
			Assert.AreEqual( actual.Value, 10000 );

			actual = doc.FindValue( "/Name/a" );
			Assert.AreEqual( actual.Value, 9999 );
		}

		/// <summary>
		///Parse のテスト
		///</summary>
		[TestMethod()]
		public void ParseTest2 ()
		{
/*
			YCDocument actual = null;
			string expectedA = "10";
			string expectedB = "9,999";

			actual = Parser.Parse( "string a = \"10\";	string b = \"9,999\";	" );
			Assert.AreEqual( expectedA, actual.FindValue( "/a" ).Value );
			Assert.AreEqual( expectedB, actual.FindValue( "/b" ).Value );

			System.IO.MemoryStream ms = new System.IO.MemoryStream();
			actual.Write( ms );
			string s = System.Text.Encoding.UTF8.GetString( ms.GetBuffer() );
			System.Diagnostics.Debug.WriteLine( s );
*/
		}
	}
}
